/**
 * 请求实例
 *
 * @author 济南晨霜信息技术有限公司
 * @mobile 18560000860 / 15275181688 / 19256078701 / 18754137913
 */
import settings from "@/src/settings";
import HiHttp from "@/uni_modules/hi-http";

// 公共配置
const commonConfig = {
    // 数据中表示状态码的字段名称
    dataStatusKey: "code",
    // 数据中表示状态文本的字段名称
    dataStatusTextKey: "errMsg",
    // 数据中表示成功状态的状态码
    dataSuccessStatusCode: 0,
    // 请求前的拦截函数
    before: (conf) => {
        // console.info("请求前的处理函数 ->", conf);
        return true;
    },
    // 请求后的处理函数
    after: (resp, conf) => {
        // console.info("请求后的处理函数 ->", conf);
    },
    // 状态码处理函数
    codeFunctions: {
        // 用户登录状态失效
        401: function (resp, conf) {
            // 终止所有请求
            commonRequestInstance?.aborts();
            commonUploadInstance?.aborts();

            // 清除用户相关数据
            // useUserStore()?.clear();

            // 刷新当前页面
            // uni.$hiRouter?.refresh();
        }
    }
};

// 公共接口请求实例
export const commonRequestInstance = new HiHttp({
    ...commonConfig,
    // 接口基准路径
    baseURL: settings.apiBaseUrl,
    // 请求时携带的鉴权凭证名称
    requestTokenKey: settings.apiRequestTokenKey,
    // 接口返回数据中携带的鉴权凭证名称
    responseTokenKey: settings.apiResponseTokenKey,
    // 存储在本地的鉴权凭证名称
    storageTokenKey: settings.apiStorageTokenKey
});

// 公共上传请求实例
export const commonUploadInstance = new HiHttp({
    ...commonConfig,
    // 接口基准路径
    baseURL: settings.uploadBaseUrl,
    // 请求时携带的鉴权凭证名称
    requestTokenKey: settings.uploadRequestTokenKey,
    // 接口返回数据中携带的鉴权凭证名称
    responseTokenKey: settings.uploadResponseTokenKey,
    // 存储在本地的鉴权凭证名称
    storageTokenKey: settings.uploadStorageTokenKey
});
